import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class JedisAPI {
    private static JedisPool jedisPool;
    static {
        //创建并设置连接池配置对象
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(50);             //连接池最大活动连接数
        config.setMaxTotal(10);             //连接池中的最大空闲连接数
        config.setMinIdle(7);               //连接池中的最小空闲数
        config.setTestOnBorrow(true);       //获取资源时是否验证资源的有效性
        config.setMaxWaitMillis(1000);      //获取资源的等待时间

        //创建Jedis连接池
        jedisPool = new JedisPool(config,"192.168.9.66",6379,10000,"123456",0);

    }

    public void destroy(){
        if (!(jedisPool == null) || jedisPool.isClosed()){
            jedisPool.close();
        }
    }

    /**
     * ste key and value to redis
     * @param key
     * @param value
     * @return
     */
    public boolean set(String key,String value){
        Jedis jedis = null;
        try {
            jedis = jedisPool.getResource();           // 从池中获取Jedis实例
            jedis.set(key,value);
            return true;
        }catch (Exception e){
            e.printStackTrace();
            return false;
        }finally {
            //返还到连接池
            if (jedis != null){
                jedis.close();
            }
        }
    }

    public String get(String key){
        String value = null;
        Jedis jedis = null;
        try {
            jedis = jedisPool.getResource();        //从池中获取Jedis实例
            value = jedis.get(key);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            //返还到连接池
            if (jedis !=null){
                jedis.close();
            }
        }
        return value;
    }
}
